package com.xiaoyg.lock;

/**
 * 锁对象里面有个计数器，recursions变量，会记录线程获得几次锁
 * 可以避免死锁，可以更好的封装代码
 * 进入几次同步代码块，记录几次锁，执行完成一次-1，减到0时，释放锁
 */
public class SyncNature {
    public static void main(String[] args) {
        //定义自定义线程类
        //线程类run方法中执行
        new MyThread().start();
        new MyThread().start();

    }
}

class MyThread extends Thread{
    @Override
    public void run() {
        synchronized (MyThread.class){
            System.out.printf(getName()+"进入了同步代码块1");
            test01();
        }
    }

    public void test01(){
        synchronized (MyThread.class){
            System.out.printf(getName()+"进入了同步代码块2");

        }
    }
}
